﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace HospitalAdmision
{
    public partial class FormBuscarPaciente : Form
    {
        ProyHospitalEntities pacientesE; //Creación del objeto de ProyHospitalEn
        public FormBuscarPaciente()
        {
            InitializeComponent();
        }

        private void FormBuscarPaciente_Load(object sender, EventArgs e)
        {
            pacientesE = new ProyHospitalEntities(); //Inicializo el objeto en el evento Load

        }

        private void btnAdmBuscar_Click(object sender, EventArgs e)
        {
            //Declaración del objeto
            Paciente paciente = pacientesE.Paciente.FirstOrDefault(a => a.rut == txtAdmRut.Text);
            Cama cama = pacientesE.Cama.FirstOrDefault(c => c.FK_rut == txtAdmRut.Text);
            // Si paciente es distinto a null busque al paciente
            

            if (paciente != null || cama != null)
            {
                
                txtAdmContrain.Text = paciente.contraindicaciones;
                txtAdmFechaIngreso.Text = Convert.ToString(cama.fechaOcupacion);
                int ufunc = cama.unidadFuncional;
                txtAdmNumHabitacion.Text = Convert.ToString(cama.numHabitacion);
                UnidadFuncional ufuncional = pacientesE.UnidadFuncional.FirstOrDefault(u => u.id_uFuncional == ufunc);
                txt_nroCama.Text = cama.id_cama+"";
                
                txtAdmUnidadFuncional.Text = ufuncional.Descripcion;
                btn_darAlta.Enabled = true;
            }
            else //por el contrario muestra un mensaje de que no se encuentra el paciente
            {
                MessageBox.Show("No se encuentra el paciente");
                btn_darAlta.Enabled = false;
            }
        }

        private void btnAdmLimpiar_Click(object sender, EventArgs e)
        {
            //Borra la informacion que se muestra en las cajas de texto
            txtAdmRut.Clear();
            txtAdmUnidadFuncional.Clear();
            txtAdmFechaIngreso.Clear();
            txtAdmContrain.Clear();
            btn_darAlta.Enabled = false;
        }

        private void principalToolStripMenuItem_Click(object sender, EventArgs e)
        {
           /* FormAdmision fa = new FormAdmision();

            fa.Show(); //Muestro el formulario Principal
            this.Close(); //Cierra el formulario FormBuscarPaciente
            * 
        }

        private void FormBuscarPaciente_FormClosing(object sender, FormClosingEventArgs e)
        {
           /* FormAdmision fa = new FormAdmision();

            fa.Show(); //Muestro el formulario Principal
            * ¨*/

            //Cierra el formulario FormBuscarPaciente
        
        }

        private void btn_darAlta_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Usted quiere realmente dar de alta al paciente?", "dar de alta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                int nrocama = Convert.ToInt16(txt_nroCama.Text);
                Cama cam = pacientesE.Cama.FirstOrDefault(c => c.id_cama == nrocama);
                cam.estado = "Disponible";
                pacientesE.SaveChanges();
            }


            
        }
    }
}
